package com.mrx.commons.annotations;

import org.springframework.transaction.event.TransactionalEventListener;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 事务提交后才会执行, 类似 SpringEvent 的 {@link TransactionalEventListener}<br/>
 * 需要注意的是, 被该注解标识的方法其返回值将固定为 null, 因为其将在子线程内执行<br/>
 * 即: <b>被该注解标识的方法将被异步化, 等事务提交后再执行</b>
 *
 * @author Mr.X
 * @since 2023-12-27 13:37
 **/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AfterCommit {
}
